Frequently, broadband systems transmit television signals to subscribers of a conditional access system. Broadband systems, such as cable and satellite television systems, typically include a headend for receiving programming and/or data from various sources and redistributing the programming and other data through a distribution system to subscribers. The headend receives programming signals from a variety of sources, combines the programming signals from the various sources, and transmits the combined signals through the distribution system to subscriber equipment. The distribution system can include a variety of media, such as coaxial cable, fiber optic cable, and satellite links, as well as a network of distributed nodes that then transmit the programming to subscriber locations, or to a network of distributed hubs, which transmit the signals to subscriber equipment, or any combination thereof. In a cable television system, the subscriber equipment can include a cable-ready television, a cable-ready video cassette recorder (VCR), or a digital home communications terminal (DHCT) that is connected to a television, computer, or other display device.
Increasingly, the headend is receiving and transmitting programming in a digital format, for example, Moving Pictures Expert Group (MPEG) format, instead of an analog format. Transmitting programs in MPEG format is advantageous because multiple digitized programs can be combined and transmitted in, for example, 6 MHz of bandwidth, which is the same amount of bandwidth required to transmit a single analog channel or program.
MPEG transport streams include overhead information such as MPEG tables that indicate the types and location of the programming within the transport stream. In a local television system, the MPEG tables include information that is specific to that local distribution system and its particular channel line-up. MPEG as referenced in this application is described in the MPEG-1 and MPEG-2 standards. The MPEG-1 standards (ISO/IEC 11172) and the MPEG-2 standards (ISO/IEC 13818) are described in detail in the International Organization for Standardization document ISO/IEC JTC1/SC29/WG11 N (June 1996 for MPEG-1 and July 1996 for MPEG-2), which is hereby incorporated by reference. Therefore, the headend system, and the modulators in particular, must add the required MPEG table data to the outgoing bit stream.
MPEG transport streams are made up of standardized packets, each of which are 188 bytes in size. Each of the packets includes a header and a payload. Generally, the header is 4 bytes in size and the payload is 184 bytes in size, but the header can be expanded, in which case the payload is contracted by a corresponding amount. The header includes a packet identifier (PID), which is a 13-bit field that is used to identify the packet. Thus, 8,192 possible PID values can be assigned to packets in a transport stream. Certain PID values are reserved, such as PID=0 and PID=8,191, which are used to identify Program Association Tables (PAT) and stuffing packets, respectively, and will be described in greater detail hereinbelow.
Generally, a transport stream includes a plurality of elementary streams, and each elementary stream is made up of packets that have a common PID value. Within a transport stream, each elementary stream is associated with a PID value, such that no two elementary streams are associated with the same PID value.
An MPEG program is made up of a plurality of elementary streams. Generally, an MPEG program includes a video elementary stream, which is made up of packets having digitized video information included therein, and at least one audio elementary stream.
Generally, a transport stream includes a plurality of programs, each of which are uniquely identified by a program number. The transport stream includes a program association table (PAT) packet, which has the PID value of 0. The PAT of a transport stream maps program identities to their program number. A program corresponds to what has traditionally been called a television channel, e.g., PBS, ESPN, etc. The PAT identifies the PID value of the elementary stream for the program map table (PMT) of a program included in the transport stream. A PMT for a program lists all of the PID values of the elementary streams of the program. Thus, the process of identifying a program and its contents takes place in two stages: first one uses the PAT in the PID=0 elementary stream to identify the PID of the elementary stream carrying the PMT for the program, and then in the next stage one obtains the PIDs of the elementary bit streams that make up the program from the appropriate PMT. A demultiplexer or decoder can be set to receive the identified packets that correspond to the program of interest. For proper viewing, the elementary streams must be synchronized so that the audio and video signals of the program correspond to each other.
A subscriber of a digital network will generally receive multiple transport streams, each of which are identified by a transport stream identifier (TSID). Generally, a subscriber selects a particular program and the subscriber's decoder consults tables such as, for example, an electronic program guide to determine the TSID for the program stream having the selected program. For such a system to work, each transport stream received at the subscriber's decoder must be uniquely identified, i.e., each transport stream received by a subscriber's decoder needs a unique TSID. A difficulty found in prior systems is that the operator of a digital subscriber network frequently receives content such as transport streams from multiple content providers, and frequently, the operator of the digital subscriber network has to remap TSIDs so that the transport streams from different content providers are unique within the digital subscriber network. In prior networks, the operator of the network would manually assign TSIDs to the transport streams of the network. However, manual TSID assignment is an inefficient utilization of the operator's time, and thus, there exists a need for a means to automatically assign TSIDs.
In addition, in prior digital subscriber networks, the operator of the network does not have dynamic network information provided to him. The operator has no means for determining the current bandwidth that is available in any communication link carrying a transport stream. Thus, the operator can only guess at the current available bandwidth for a transport stream when trying to decide whether to add another program to the transport stream. If the operator overestimates the available bandwidth, then the new program may cause the bandwidth of the transport stream to exceed the bandwidth of the communication link, and consequently, a phenomena known as “macro blocking” occurs. When macro blocking occurs packets are dropped from the transport stream, which results in the degradation of the quality of programs in the transport stream, which in turn causes many subscribers to complain. On the other hand, if the operator underestimates the available bandwidth, so as to ensure against macro blocking, the network is not operating at its full efficiency, and the operator is wasting bandwidth. Bandwidth in the digital subscriber network is a very valuable commodity, and thus, digital subscriber networks need dynamic network information that allows the operator to intelligently allocate network resources.
In prior systems, a system controller handles many administrative functions of the digital subscriber network. For example, the subscriber may request a service such as a personal session in the network. The system controller, among other things, establishes the session for the subscriber, determines how to deliver the content for the session to the subscriber and bills the subscriber for the session. Thus, there exists a need for a rededuction in the processing burden placed upon the system controller.